package com.h3c.nem.dto;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * Copyright (C), 2020-2020, h3c
 * FileName: TbWorkerDTO
 *
 * @Author: l22886
 * @Date: 2022-01-19
 * Description: tb_worker dto实体
 * Version: 1.0
 */
@ApiModel(value="TbWorker对象", description="")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class TbWorkerDTO {


    @ApiModelProperty(value = "工号")
    private String workerId;

    @ApiModelProperty(value = "姓名")
    private String workerName;

    private String deptFullName;

    @ApiModelProperty(value = "一级部门名称")
    private String dept1name;

    @ApiModelProperty(value = "二级部门名称")
    private String dept2name;

    @ApiModelProperty(value = "三级部门名称")
    private String dept3name;

    @ApiModelProperty(value = "四级部门名称")
    private String dept4name;

    private String codeChainName;

    @ApiModelProperty(value = "直属部门ID")
    private Integer directDeptId;

    @ApiModelProperty(value = "入职日期")
    @JSONField(format = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone="Asia/Shanghai")
    private Date joinDate;

    @ApiModelProperty(value = "试用期月数")
    private Integer probationMonth;

    @ApiModelProperty(value = "转正日期")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone="Asia/Shanghai")
    private Date passDate;

    @ApiModelProperty(value = "性别：1 男； 2 女；")
    private Integer sex;

    @ApiModelProperty(value = "岗位名称")
    private String postName;

    @ApiModelProperty(value = "工作履行地")
    private String workCity;

    @ApiModelProperty(value = "数据来源")
    private String dataSrc;

    @ApiModelProperty(value = "人事范围（公司名称）")
    private String companyName;

    @ApiModelProperty(value = "学历")
    private String eduLevel;

    @ApiModelProperty(value = "年龄")
    private String age;

    @ApiModelProperty(value = "专业名称")
    private String eduMajorName;

    @ApiModelProperty(value = "工作经历")
    private String workExperience;

    @ApiModelProperty(value = "部门接口人")
    private String deptContactor;

    private String deptContactorId;

    private String deptContactorEmail;

    private String deptBp;

    private String deptBpId;

    private String deptBpEmail;

    @ApiModelProperty(value = "思想导师工号/姓名")
    private String teacherInfo;

    @ApiModelProperty(value = "思想导师邮箱")
    private String teacherEmail;

    private String directManagerEmail;

    private String secondManagerEmail;

    @ApiModelProperty(value = "思想导师工号")
    private String teacherId;

    @ApiModelProperty(value = "直接上级工号/姓名")
    private String directManager;

    private String directManagerId;

    @ApiModelProperty(value = "隔级上级工号/姓名")
    private String secondManager;

    private String secondManagerId;

    @ApiModelProperty(value = "第一考核人工号/姓名")
    private String firstApprover;

    @ApiModelProperty(value = "第二考核人工号/姓名")
    private String secondApprover;

    @ApiModelProperty(value = "第三考核人工号/姓名")
    private String thirdApprover;

    @ApiModelProperty(value = "最终考核人工号/姓名")
    private String finalApprover;

    @ApiModelProperty(value = "最终决策人工号/姓名")
    private String finalJudger;

    @ApiModelProperty(value = "新员工考试成绩")
    private BigDecimal newExamScore;

    @ApiModelProperty(value = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="Asia/Shanghai")
    private Date createTime;

    @ApiModelProperty(value = "员工状态：1 待启动考核；2 考核进行中；3 已转正；4 已淘汰；5、已终止")
    private Integer workerStatus;

    private String workerStatusName;

    @ApiModelProperty(value = "小任务list")
    private List<TbFlowInstDTO> newerTaskList;

    @ApiModelProperty(value = "系统ID-(数据库字段：systemId)")
    private String systemId;
    @ApiModelProperty(value = "审批流ID-(数据库字段：processId)")
    private String workFlowId;
    @ApiModelProperty(value = "单据ID-(数据库字段：docunid)")
    private String docId;
    @ApiModelProperty(value = "当前节点ID-(数据库字段：nodeId)")
    private String currentNodeId;
    @ApiModelProperty(value = "员工域账号")
    private String empNumber;

    private String flowId;

    private String flowResult;

    private String nameAndId;
    /**
     * 排序字段 + 升序， -降序
     * 比如 +updateTime 根据 修改时间升序排序，-updateTime 根据 修改时间降序排序
     */
    private String orderBy;

    @ApiModelProperty(value = "流程阶段：11 已创建第一个月承诺流程；12 已创建第一个月考核流程；21 已创建第二个月承诺流程；依此类推；")
    private Integer flowStage;
    private String flowStageName;

    /**
     * 历史成绩
     */
    private String workerGrade;

    private Double yanScore;

    private String jobType;
    private String jobLevel;
    private boolean isQuit;
    //操作说明
    private String operateNote;
    private Byte changeDeptManageFlag;
    private Byte changeSecManageFlag;
    // 员工类型
    private String workerType;
}
